.. _uain_automount_freeipa_comfiguration:

Управление автомонтированием через FreeIPA UI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Управляя рабочими станциями в домене FreeIPA администраторы могут настраивать карты монтирования централизованно. Работает этот механизм следующим образом:

* Утилита automount поддерживает извлечение информации через механизм NSS
* В файле /etc/auto.master по умолчанию присутствует запись +auto.master, которая указывает на то, что в главную карту должно включаться содержимое карты с именем auto.master через механизм NSS.
* В файле /etc/nsswitch.conf в строке «automount: sss» в качестве источника для automount указан модуль sss, который извлекает ее путем обращения к соответствующему ответчику службы SSSD.
* Служба SSSD извлекает из домена карты автоматического монтирования для одной конкретной локации, имя которой указано параметром ipa_automount_location в конфигурационном файле /etc/sssd/sssd.conf секции domain.

В качестве инструмента применения и автоматизации настроек автомонтирования общих ресурсов на конечных клиентских машинах используется утилита ipa-client-automount.

Далее приведены примеры настройки для использования централизованных карт монтирования общих ресурсов через FreeIPA UI.

Создание расположения (локации) автомонтирования
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Расположение автомонтирования (англ. automount location) -- контейнер для хранения карт монтирования. С помощью расположений (локаций) можно создать изолированные пространства имен распределенной файловой системы для разных категорий рабочих станций. Локации автомонтирования используются для того, чтобы определить для групп компьютеров разные настройки автомонтирования, а значит и разные условия доступа к общим ресурсам.

В интерфейсе FreeIPA список существующих локаций размещён в **Сетевые службы → Автомонтирование** (Network Services → Automount). По умолчанию в домене средствами FreeIPA создаётся расположение default.

.. figure:: images/loclist.png
    :name: loclist

    Список локаций автомонтирования 

Создание новой локации осужествляется по кнопке "Add". Для этого достаточно указать название новой локации.

.. figure:: images/locadd.png
    :name: locadd

    Создание локации testlocation

Такой сущности как «расположение автомонтирования» в утилите automount нет, это доработка со стороны FreeIPA и SSSD. Информация о локациях автомонтирования находится в LDAP в разделе ``cn=automount,dc=example,dc=com``.

.. figure:: images/locldap.png
    :name: locldap

    LDAP-записи о локациях

Создание и настройка карт монтирования
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Внутри расположения, по умолчанию, есть два списка соответствия автомонтирования. Списки соответствия также называют **картами монтирования**. Главным списком (картой) является ``auto.master``, ключи этого списка будут включены в главную карту монтирования на рабочей станции пользователя. Имя ``auto.master`` является предопределенным, т.к. на рабочих станциях пользователей в главной карте ``/etc/auto.master`` по умолчанию присутствует строка «+auto.master». Если вы удалите эту карту по ошибке, то ее можно создать вручную, главное -- сохранить тоже самое имя для этой карты. Подробнее о картах монтирования см. :numref:`automount_maps`.

По нажатию на одну из локаций в списке **Сетевые службы → Автомонтирование** выводится список карт монтирования, этой локации. Пример, для вновь созданной локации testlocation:

.. figure:: images/locmaps.png
    :name: locmaps

    Список карт монтирования в локации testlocation

Создание новой карты монтирования осуществляется по кнопке "Add". Карты в интерфейсе FreeIPA могут быть 2 типов -- прямые и косвенные (см. :numref:`automount_maps`). Обратите внимание, что такое деление карт монтирования в некоторой степени условное по следующим причинам:
* При добавлении «прямой» карты интерфейс FreeIPA не создаст ключ прямого монтирования «/-» в главной карте auto.master, таким образом карта создаётся в «вакууме» и необходимо будет вручную делать на неё ссылку в той карте которой необходимо (в самом простом варианте -- auto.master). То есть с помощью этого интерфейса можно добавить не «прямые карты», а карты, на который не указывают никакие ключи. 
* При добавлении «непрямой» карты допускается использовать ключ «/-» и указать в качестве родительской карты auto.master (если оставить соответствующее поле пустым), в этом случае будет добавлена карта прямого монтирования. 

Поэтому предлагается относиться к этому переключателю ``FreeIPA UI`` иначе: он позволяет создать карту без ссылок (значение «прямой») или создать карту и сделать запись ключ-значение в родительской карте (иначе -- ссылку) на создаваемую карту.

.. figure:: images/mapdiradd.png
    :name: mapadd

    Создание прямой карты монтирования testdirectmap


.. figure:: images/mapdiradd2.png
    :name: mapadd

    Создание прямой карты монтирования testdirectmap, добавление ссылки

.. figure:: images/mapindir.png
    :name: mapindir

    Создание непрямой карты монтирования testindirectmap на auto.master

.. figure:: images/mapindir2.png
    :name: mapindir2

    Создание непрямой карты монтирования testindirectmap на auto.master

.. note:: 

    Создание непрямых карт монтирования через FreeIPA UI множественной вложенности в текущей версии продукта может приводить к ошибкам на уровне службы autofs при попытке найти информацию в LDAP по ссылке ``-fstype=autofs ldap:<mapname>``. 

Таким образом, рекомендуется в текущей версии продукта пользоваться прямыми картами монтирования, который включаются в auto.master с помощью ссылки ``/-``.

Создание и настройка точек монтирования
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Подключение общих ресурсов с файловых серверов SMB настраивается на этапе создания точек монтирования. При добавлении общей папки, назначается ключ монтирования, как путь к директории на **клиентской** машине (через неё пользователь будет получать доступ к удалённой папке) и настройки (флаги) для запуска утилиты mount (поле mount information). После применения на клиенте утилиты ``ipa-client-automount`` локации, содержащей карту монтирования с этой точкой монтирования создается **ловушка монтирования**, и при попытке пользователя открыть директорию служба autofs вызывает утилиту mount с флагами, указанными в поле mount information. Подробнее о возможных настройках см. ``man autofs``, ``man automount``, ``man mount``.

Для примера создадим точку монтирования в прямой карте testdirectmap:

* Ключ монтирования -- ``/test``. Таким образом, при применении автомонтирования удалённая папка будет доступна с клиента по пути ``test``.
* Настройки монтирования -- ``-fstype=cifs,user,sec=krb5i,cruid=$UID,uid=$UID,gid=$UID ://smb01.testpool01/myfolder``. Разбор настроек:
  * Из ``-fstype=cifs`` будет собрано ``mount -t cifs``
  * Опции ``user,sec=krb5i,cruid=$UID,uid=$UID,gid=$UID`` проброшено в флаг ``mount -o user,sec=krb5i,cruid=$UID,uid=$UID,gid=$UID``.
  * ``://smb01.testpool01/myfolder`` -- путь к физической директории на файловом сервере, где ``smb01.testpool01`` это имя файлового сервера в локальной сети, а ``/myfolder`` -- путь к директории. 

Предварительно, перед созданием точек монтирования на физические директории стоит настроить сами физические директории через интерфейс ALD Pro (см. :numref:`folder_server_configuration`).  

.. note:: 

    Обратите внимание что путь к директории не абсолютный относительно корня файлового сервера, а относительно настроек samba-сервера, которые прописывают префикс-директорию на файловом сервере, по умолчанию, указаны в ``/etc/samba/smb.conf`` и ``/etc/samba/share.conf``. По умолчанию, общие папки создаются в ``/opt/samba_shares``. 

Создадим 2 точки монтирования на одну и ту же директорию. 

.. figure:: images/point1.png
    :name: point1

    Создание точки монтирования в карту testdirectmap в /test


.. figure:: images/point2.png
    :name: point2

    Создание точки монтирования в карту testdirectmap в /testindir11/test

Таким образом на клиентской машине должно будет появится 2 новых ловушки монтирования по указанным путям. В директории на файловом сервере лежит файл ``file`` и папка ``test``.

.. figure:: images/point3.png
    :name: point3

    Наполнение директории на файловом сервере

.. _automount_client_machine:

Применение настроек автомонтирования на клиентской машине
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

На данном этапе вся информация о картах монтирования, точках и т.п расположена в LDAP и необходимо данные настройки использовать на клиентской машине, для того, чтобы пользователь мог получить доступ к удалённым папкам через точки монтирования. Для этого используется утилита ``ipa-client-automount``, которая принимает флаг ``--location``. Необходимо использовать локацию, в которой были ранее настроены точки и карты монтирования (по умолчанию это default, в случае данного примера -- newloc).

.. note:: 

    Использование утилиты вручную вполне допускается администраторами ALD Pro для точечных решений, однако для масштабных инфраструктур на десятки, сотни и тп. клиентов рекоммендуется использовать параметр ГП, о котором пойдёт речь в следующем разделе.

Если рабочая станция была ранее настроена на работу с другой локацией, сначала нужно выполнить удаление настроек, а затем выполнить присоединение к требуемой локации:

.. code-block:: bash

    root@client01:/# ipa-client-automount --uninstall
    Restoring configuration
    root@client01:/# ipa-client-automount --location newloc
    Searching for IPA server...
    IPA server: DNS discovery
    Location: newloc
    Continue to configure the system with these values? [no]: yew
    Configured /etc/default/nfs-common
    Configured /etc/idmapd.conf
    Restarting sssd, waiting for it to become available.
    Started autofs

Служба autofs будет автоматически перезапущена, поэтому на каталоги будут установлены ловушки монтирования:

.. code-block:: bash

    root@client01:/# findmnt
    TARGET                       SOURCE        FSTYPE     OPTIONS
    ...
    ├─/testindir11/test          testindirect  autofs     rw,relatime,fd=6,pgrp=5999,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=73026
    ├─/test_point                testdirectmap autofs     rw,relatime,fd=6,pgrp=5999,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=73026

Теперь при попытке получить доступ к содержимому директории ``/test_point`` произойдёт запуск утилиты ``mount`` (о чём будет запись в ``/var/log/syslog``). В качестве credentials будут использованы UID и TGT-билет того пользователя, под которым залогинился пользователь. Например пользователь ``root`` c ``$UID = 0`` не получит доступ к содержимому директории, поскольку на него не выписан kerberos-билет, а также на smb файловом сервере его нет в списке допущенных к содержимому папки:

.. code-block:: bash

    root@client01:/# cd test_point/
    bash: cd: test_point/: Нет такого файла или каталога

.. figure:: images/smbdir1.png
    :name: smbdir1

    Настройки доступов папки на файловом сервере

В списке допущенных есть только пользователь admin, который действительно может получить доступ к папке согласно настройкам доступов папки, заданным ранее в ALD Pro.

.. code-block:: bash

    admin@client01:/$ cd test_point/
    admin@client01:/test_point$ ls -la
    итого 4
    drwxr-xr-x  2 admin admins    0 июл  1 09:24 .
    drwxr-xr-x 27 root  root   4096 июл  1 09:23 ..
    -rwxr-xr-x  1 admin admins    0 июл  1 09:23 file
    drwxr-xr-x  2 admin admins    0 июл  1 09:24 test


Параметр групповой политики "Служба автомонтирования"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

С версии 3.0 ALD Pro в официальной комплектации продукта появляется параметр компьютера "Служба автомонтирования" для групповых политик. Параметр позволяет настроить автомонтирование общих samba-папок на клиентской рабочей станции AstraLinux. Базовая задача параметра -- запустить ``ipa-client-automount --location <LOC>``.

Основные сценарии использования параметра – применение и сброс локации автомонтирования для подразделений, содержащих компьютеры. При применении локации на каждый компьютер подразделения применяются применены ловушки монтирования, ведущие к директориям на файловых серверах. Доступ к содержимому папок осуществляется исходя из разрешений, выданных shared-директориям на пользователей или группы пользователей. Все пользователи видят ловушки монтирования на клиентской машине, но доступ пользователя к каждой папке, скрывающейся за ловушкой, проверяется отдельно.

Локация хранится в конфигурационном файле настроек sssd (``/etc/sssd/sssd.conf``) в ключе ``ipa_automount_location``. Для проверки корректности настройки автомонтирования в терминале можно воспользовать командой ``findmnt -t autofs``, которая отображает все точки монтирования в системе. В списке содержатся также находятся и ловушки монтирования, которые настроены в картах монтирования выбранной ранее локации.

Тип параметра – простой.

Поле «Локация» содержит название локации автомонтирования. Название локации задаётся при её создании одим из следующих способов:

* Портала управления FreeIPA (Сетевые службы → Автомонтирование → Расположение автомонтирования). Подробнее о том, как использовать FreeIPA для настройки автомонтирования см. :numref:`automount_freeipa_comfiguration`.
* С помощью утилиты ipa. Подробнее об этом способе можно узнать, введя в терминале запущенного контроллера домена команду ``ipa help automount``.

Поле «Разрешено использование» включает работу с указанной локацией. Допускается установка в поле одного из следующих значений:

* ``true`` - Включить автомонтирование и применить локацию (по умолчанию).
* ``false`` - Выключить автомотирование и отключить локацию.

Отключение параметра (перевод атрибута "Состояние" в состояние «Выключено») не приведет к отключению автомонтирования в системе. Для фактического выключения локации необходимо оставить параметр активным, при этом для локации установить атрибут «Разрешено использование» в значение «false» (systemd-процесс autofs отключен).

Важно обратить внимание, что при удалении локации, которая используется в объекте групповой политики, содержащем параметр "Служба автомонтирования", через портал управления ALD Pro или 389ds, локации, ловушки и все прочие настройки автомонтирования на компьютерах подразделения сброшены не будут.

Применение данного параметра групповой политики подчиняется стандартным механизмам групповых политик (см. руководство администратора). Для конфигурации созданной ранее (см. :numref:`automount_client_machine`) создаётся групповая политика с параметром "Служба Автомонтирования" и соответствующими аргументами.

.. figure:: images/automount_gp.png
    :name: automount_gp

    Настройки параметра ГП

По нажатию на кнопку "Применить" групповая политика сохраняется и на связанных с подразделением клиентах она будет применена по таймеру. Можно воспользоваться форсированным применением групповых политик на конкретной машине с помощью команды ``aldpro-gpupdate --gp``. В результате на клиенте будет применена та локация, которая была указана на портале управления в параметре "Локация":

.. code-block:: bash

    root@client01:/home/admin# findmnt -t autofs
    TARGET                   SOURCE      FSTYPE OPTIONS
    /proc/sys/fs/binfmt_misc systemd-1   autofs rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1387
    /myfolderkey             auto.direct autofs rw,relatime,fd=6,pgrp=213686,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=816641
    /myffffff                auto.direct autofs rw,relatime,fd=6,pgrp=213686,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=816641
    root@client01:/home/admin# aldpro-gpupdate --gp
    Форсированное применение групповых политик
    ...
    root@client01:/home/admin# findmnt -t autofs
    TARGET                   SOURCE        FSTYPE OPTIONS
    /proc/sys/fs/binfmt_misc systemd-1     autofs rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1387
    /testindir11/test        testindirect  autofs rw,relatime,fd=6,pgrp=213936,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=819129
    /test_point              testdirectmap autofs rw,relatime,fd=6,pgrp=213936,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=819129

